package com.session06;

import java.io.*;

public class Test {
    public static void main(String[] args) {
        //对象的序列化
        /*
            如果一个类的对象要想参与序列化，那么这个类必须实现Serializable接口;
            并且这个类所有属性的类型都要实现Serializable接口。
            大部分JDK中常用的可能会参与序列化的类都已经实现了该接口
            包括：String，集合类...
            我们只需要控制自己的自定义类
         */

/*        UserInfo user = new UserInfo("张三", 27);
        try (FileOutputStream fos = new FileOutputStream("user.data");
             ObjectOutputStream oos = new ObjectOutputStream(fos)) {
            oos.writeObject(user);

        } catch (IOException e) {
            e.printStackTrace();
        }*/

        //对象的反序列化
        UserInfo user = null;
        try (FileInputStream fis = new FileInputStream("user.data");
             ObjectInputStream ois = new ObjectInputStream(fis)) {
            user = (UserInfo) ois.readObject();

        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        System.out.println(user.getName() + "-" + user.getAge());
    }
}
